Pular para o conteúdo principal

methods in class

purpose of methods

There are three types of methods in Python

  • instance methods
  • class methods
  • static methods

instance methods are used the most in python

why methods?

A method is a group of statements that perfoms some operations and may or may not return a result.

Methods can alter the content of the properties or use their value to perform a particular computation.

one of the major differences between functions and methods in python is the first argument in the method definition

It is normally named self

example of implementing methods in a class:

 class Employee:
def __init__(self, ID=None, salary=None, department= None):
self.ID = ID
self.salary = salary
self.department = department

def tax(self):
return(self.salary * 0.02)
def salaryPerDay(self):
return(self.salary / 30)

Grazi = Employee(84, 3000, "software")

print(Grazi.tax()) #60.0

Method overloading

Method overloading refers to the ability of a class to define multiple methods with the same name, but different signatures.

example:

class MyClass:
def greet(self, name='world'):
print(f'Hello, {name}!')

obj = MyClass()
obj.greet() # prints "Hello, world!"
obj.greet('Alice') # prints "Hello, Alice!"

why use method overloading?

Overloading saves us memory in the system. Create new mthod is costlier compared to overloading a single one. Futhermore, the code becomes simple and clean. Method overloading is also very important to Polymorphism concept

in a nutshell:

Overloading

  • Increases execution speed
  • makes code cleaner
  • allows the implementation of polymorphism
  • same method name saves memory

Class methods

there are 3 types methods in python:

  • Instance -> we already talk about it before
  • class methods
  • static methods

Class methods work with class variables and are accessible using the class name rather than its object.

syntax

# we use the decorator `@classmethod.cls`

class MyClass:
classVariable = "educative"

@classmethod
def demo(cls):
return cls.classVariable

another example:

class Player:
teamName = 'Liverpool' # class variables

def __init__(self, name):
self.name = name # creating instance variables

@classmethod
def getTeamName(cls):
return cls.teamName


print(Player.getTeamName())

reference:

https://www.youtube.com/watch?v=nLhj3aihF7c